package main

import (
	"context"
	"google.golang.org/grpc"
	pb "grpc-demo/complex/proto"
	"log"
	"strconv"
)

var grpcClient pb.StreamClientClient

func routeList() {
	stream, err := grpcClient.RouteList(context.Background())
	if err != nil {
		log.Fatal(err)
	}
	for i := 0; i < 5; i++ {
		err := stream.Send(&pb.StreamRequest{StreamData: "stream client data: " + strconv.Itoa(i)})
		if err != nil {
			log.Fatal(err)
		}
	}
	// 发送结束后，客户端收到服务端发送的最后一个消息
	res, err := stream.CloseAndRecv()
	if err != nil {
		log.Fatal(err)
	}
	log.Println(res)
}

func main() {
	// 连接服务器
	conn, err := grpc.Dial(":50051", grpc.WithInsecure())
	if err != nil {
		log.Fatal(err)
	}
	defer conn.Close()

	// 建立grpc连接
	grpcClient = pb.NewStreamClientClient(conn)

	// 调用服务端的方法
	routeList()
}
